package com.evan.webadmin.upms.model;

import com.baomidou.mybatisplus.annotation.*;
import com.evan.common.core.annotation.RelationManyToMany;
import com.evan.common.core.base.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.*;

/**
 * 权限字实体对象。
 *
 * @author evan
 * @date 2024-04-20
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "mosys_perm_code")
public class SysPermCode extends BaseModel {

    /**
     * 权限字Id。
     */
    @TableId(value = "perm_code_id")
    private String permCodeId;

    /**
     * 上级权限字Id。
     */
    @TableField(value = "parent_id")
    private String parentId;

    /**
     * 权限字标识(一般为有含义的英文字符串)。
     */
    @TableField(value = "perm_code")
    private String permCode;

    /**
     * 权限类型(0: 表单 1: UI片段 2: 操作)。
     */
    @TableField(value = "perm_code_type")
    private Integer permCodeType;

    /**
     * 显示名称。
     */
    @TableField(value = "show_name")
    private String showName;

    /**
     * 显示顺序(数值越小，越靠前)。
     */
    @TableField(value = "show_order")
    private Integer showOrder;

    /**
     * 权限字类别(0:pc端，1:移动端，2:工作流)。
     */
    @TableField(value = "perm_code_kind")
    private Integer permCodeKind;

    @RelationManyToMany(
            relationMasterIdField = "permCodeId",
            relationModelClass = SysPermCodePerm.class)
    @TableField(exist = false)
    private List<SysPermCodePerm> sysPermCodePermList;
}
